#include<stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;


int main(int argc, char *argv[]) {

  if(argc < 4){
    printf("\nEspecifique todos os parâmentros:\n\n");
    printf("programa nLinhas nColunas nPredios ehPossivel\n");
    printf("nLinhas [1, 10000]: número inteiro de linhas\n");
    printf("nColunas [1, 10000]: número inteiro de colunas\n");
    printf("nPredios [1, 100]: número inteiro de pontos de entrega\n");
    return -1;
  }

  int nLinhas = atoi(argv[1]);
  int nColunas = atoi(argv[2]);
  int nPredios = atoi(argv[3]);



  printf("1\n");
  if(nLinhas <=0 || nLinhas >10000){
    printf("\nnLinhas deve ser estar no intervalo [1,10000]\n\n");
    return -1;
  }

  if(nColunas <=0 || nColunas >10000){
    printf("\nnColunas deve ser estar no intervalo [1,10000]\n\n");
    return -1;
  }

  if(nPredios <=0 || nPredios >100){
    printf("\nnPredios deve ser estar no intervalo [1,100]\n\n");
    return -1;
  }

  if(nPredios > (nLinhas * nColunas)){
    printf("\nnPredios deve ser menor que nLinhas x nColunas \n\n");
    return -1;
  }

  srand ( time(NULL) );

  printf("%d %d\n", nLinhas, nColunas);

  char mapa[nLinhas][nColunas];
  for(int i=0; i<nLinhas; i++){
    for(int j=0; j<nColunas; j++){
      mapa[i][j] = '0' + rand()%2;   
    }
  }

  mapa[rand()%nLinhas][rand()%nColunas] = 'X';


  while(nPredios){
    int i = rand()%nLinhas;
    int j = rand()%nColunas;
    if(mapa[i][j] != 'X' && mapa[i][j] != '$'){
      mapa[i][j] = '$';
      nPredios--;
    }
  }

  for(int i=0; i<nLinhas; i++){
    for(int j=0; j<nColunas; j++){
      printf("%c", mapa[i][j]);
    }
    printf("\n");
  }
  

}
